<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>45-元字符之范围</title>
  </head>
  <body>
    <script>
      // 元字符之范围  []
      // 1. [abc] 匹配包含的单个字符， 多选1
      const reg1 = /^[abc]$/
      console.log(reg1.test('a')) // true
      console.log(reg1.test('b')) // true
      console.log(reg1.test('c')) // true
      console.log(reg1.test('d')) // false
      console.log(reg1.test('ab')) // false

      // 2. [a-z] 连字符 单个
      const reg2 = /^[a-z]$/
      console.log(reg2.test('a')) // true
      console.log(reg2.test('p')) // true
      console.log(reg2.test('0')) // false
      console.log(reg2.test('A')) // false
      // 想要包含小写字母，大写字母 ，数字
      const reg3 = /^[a-zA-Z0-9]$/
      console.log(reg3.test('B')) // true
      console.log(reg3.test('b')) // true
      console.log(reg3.test(9)) // true
      console.log(reg3.test(',')) // flase

      // 用户名可以输入英文字母，数字，可以加下划线，要求 6~16位
      const reg4 = /^[a-zA-Z0-9_]{6,16}$/
      console.log(reg4.test('abcd1')) // false
      console.log(reg4.test('abcd12')) // true
      console.log(reg4.test('ABcd12')) // true
      console.log(reg4.test('ABcd12_')) // true

      // 3. [^a-z] 取反符
      const reg5 = /^[^a-z]$/
      console.log(reg5.test('a')) // false
      console.log(reg5.test('A')) // true
      console.log(reg5.test(8)) // true
    </script>
  </body>
</html>
